/// 请求 * 登录 * 类型

/** 登录参数 */
export type LoginParams = {
  /** 用户名 */ username: string
  /** 密码 */ password: string
}

/** 登录令牌 */
export type LoginToken = {
  /** 访问令牌 */ accessToken: string
  /** 访问令牌过期时间 */ accessTokenExpireTime: string
  /** 刷新令牌 */ refreshToken: string
  /** 刷新令牌过期时间 */ refreshTokenExpireTime: string

}

/** 登录信息 */
export type LoginInfo = {
  /** 用户id */ id: number
  /** 用户名（账号） */ userName: string
  /** 用户姓名 */ realName: string
  /** 用户状态: 0-首次登录; 1-非首次登陆 */ userStatus: number

  /** 角色Id */ roleId: number
  /** 角色名称 */ roleName: string
  /** 角色类型 */ roleType: number

  /** 最新项目id */ lastProjectId: number

  /** 资源权限集合 */ permissionList: Permission[]

  /** 按钮权限映射 */ buttonMap: Record<string, boolean>
}

/** 资源权限 */
export type Permission = {
  id: number
  position: string
  permissionParentId: number
  permissionName: string
  permissionKey: string
  permissionPath: string
  permissionType: string
  permissionIcon: string
  permissionFlag: string
  permissionList: Permission[]
  openType: number
}

/** 登录项目 */
export type LoginProject = {
  /** 项目id */ id: number
  /** 项目编码 */ projectCode: string
  /** 项目名称 */ projectName: string
}

/** 登出日志 */
export interface ILogoutLogParams {
  reasonCode: string
  reasonDesc: string
  platformType: number
  companyId: string
  lastProjectId: string
  userType: string
  userName: string
  realName: string
}